Data storage systems are arrangements of hardware and software that include storage processors coupled to arrays of non-volatile storage devices, such as magnetic disk drives, electronic flash drives, and/or optical drives, for example. The storage processors service storage requests, arriving from host machines (“hosts”) which specify files or other data elements to be written, read, created, deleted, and so forth. Software running on the storage processors manages incoming storage requests and performs various data processing tasks to organize and secure the data elements stored on the non-volatile storage devices.
Some data storage systems use an assortment of data storage devices. Such data storage devices may have different performance characteristics and may be provided in respective storage tiers, with each storage tier including multiple storage devices that have similar characteristics. Each storage tier may contain a certain amount of data storage capacity, e.g., measured in gigabytes, terabytes, etc., and may include some number of storage drives to meet that capacity. As used herein, a “storage drive” is a physical device that stores data, such as an electronic flash drive, a SAS (Serial Attached SCSI—Small Computer System Interface) drive, an NL-SAS (Near Line SAS) drive, or a SATA (Serial Advanced Technology Attachment) drive, for example.
Performance of the data storage system may be characterized by the systems total capacity, response time, and throughput. The capacity is the maximum total amount of data that can be stored on the system. The response time is the amount of time that it takes to read data from or write data to the system. The throughput is a measure of the amount of data that can be transferred into or out of (i.e., written to or read from) the system over a given period of time.
The administrator of the system may desire to operate the system in a manner that maximizes throughput and minimizes response time, hi general, performance may be constrained by both physical and temporal constraints. Examples of physical constraints include bus occupancy and availability, excessive disk arm movement, and uneven distribution of load across disks. Examples of temporal constraints include bus bandwidth, bus speed, spindle rotational speed, serial versus parallel access to multiple read/write heads, and the size of data transfer buffers.
One factor that may limit the performance of a storage system is the performance of each individual storage component. For example, the read access time of a data storage system is constrained by the access time of the disk drive from which the data is being read. Read access time may be affected by physical characteristics of the disk drive, such as the number of revolutions per minute of the spindle: the faster the spin, the less time it takes for the sector being read to come around to the read/write head. The placement of the data on the platter also affects access time, because it takes time for the arm to move to, detect, and properly orient itself over the proper track (or cylinder, for multihead/multiplatter drives). Reducing the read/write arm swing reduces the access time. Finally, the type of drive interface may have a significant impact on overall storage system. For example, a multihead drive that supports reads or writes on all heads in parallel will have a much greater throughput than a multihead drive that allows only one head at a time to read or write data.
Unfortunately, the above issues relating to performance may not be known until the storage system is designed. This task of designing or configuring the storage system is complex and time consuming and the effort will be wasted if the performance of the storage system is not satisfactory. In addition, further time and expense will be required to address the matter when attempting to improve the performance of the storage system. This is undesirable.